package cn.sccl.common.scaffold;

import cn.sccl.common.scaffold.filegens.*;


/**
 * 后台代码生成脚手架
 *
 * 注册文件生成器：
 * 注册文件生成器用于根据数据库表生成数据库模型，mybatis映射文件
 * 以及后台的业务逻辑层和数据操作层代码。
 * 可以根据需要注释其中的一部分生成器。如数据库表字段发生改变，
 * 可以只保留model和mapper的生成器用于刷新数据库模型以及映射文件
 *
 * 生成相关文件：
 * 需要自行添加代码：
 * scaffoldGenerator.execute（包路径，类名前缀，数据库表名）
 * 包路径：已经默认所有代码均位于cn.epg之下，故只需添加之后的包路径。
 * eg：完整包路径为"cn.sccl.enumConst.test"
 * 则此处只需填写"enumConst.test"
 * Created by 杨浩宇 on 2016-02-20.
 */
public class Main {
    public static void main(String[] args) {

        /**************************************************
         * 定义脚手架基本信息
         * @param java文件所在路径。对于intellJ或netbean等IDE，应该填“src/main/java”，对于eclipse，应该填“src”。具体需要根据自己IDE设置的java文件路径来确定
         * @param 资源文件所在路径。对于intellJ或netbean等IDE，应该填“src/main/resources”，对于eclipse，应该填“src”。具体需要根据自己IDE设置的java文件路径来确定
         * @param 项目基本包。
         *************************************************/
        ScaffoldGenerator scaffoldGenerator = new ScaffoldGenerator("src/main/java", "src/main/resources", "target/classes", "cn.sccl", "mysql");

        /**************************************************
         * 注册文件生成器
         *************************************************/
        scaffoldGenerator.registFileGenerator(new ModelFileGenerator());//生成model的文件生成器
        scaffoldGenerator.registFileGenerator(new MapperFileGenerator());//生成Mybatis的mapper文件生成器
        scaffoldGenerator.registFileGenerator(new DAOFileGenerator());//生成Dao的文件生成器
        scaffoldGenerator.registFileGenerator(new DAOImplFileGenerator());//生成DaoImpl的文件生成器
        scaffoldGenerator.registFileGenerator(new ManagerFileGenerator());//生成Manager的文件生成器
        scaffoldGenerator.registFileGenerator(new ManagerImplFileGenerator());//生成ManagerIml的文件生成器
        scaffoldGenerator.registFileGenerator(new ControllerFileGenerator());//生成Controller的文件生成器


        /**************************************************
         * 生成相关的文件
         * @param 模型所在的基础包。相对于前面定义的“项目基本包”
         * @param 模型的类名称
         * @param 模型的数据库表
         *************************************************/
//        scaffoldGenerator.execute("dirms.monitor", "TemplateAndIcons", "t_dist_template_icons");
        scaffoldGenerator.execute("dirms.dev", "DataKey", "t_dev_data_key");
        scaffoldGenerator.execute("dirms.dev", "DataSource", "t_dev_data");
        scaffoldGenerator.execute("dirms.dev", "Graphs", "t_dev_graphs");
        scaffoldGenerator.execute("dirms.dev", "Murri", "t_dev_murri");
        scaffoldGenerator.execute("dirms.dev", "SerDataRela", "t_dev_s_d_rela");

    }
}
